CLEAN CODE [개발 도서] Clean Code :: 12장 - 창발성 즉 창발적 설계란 어떤 규칙과 원칙에 따라 설계를 하게 되면, 그것들이 모여 아주 좋은 거시적 설계가 될 수 있음을 말한다. 네가지 규칙을 따르면 코드 구조와 설계를 파악하기 쉬워져 SRP, DIP와 같은 원칙을 적용하기 쉬워지며 우수한 설계의 창발성을 촉진시킬 수 있다. 📗 단순한 설계 규칙 1 - 모든 테스트를 실행한다. 다량의 테스트 케이스를 만들어 원활한 테스트가 가능하게 한다. 다량... CLEAN CODE개발 도서CLEAN CODE 클린 코드 - 냄새와 휴리스틱 좋은 이름을 선택하려면 설명 능력이 뛰어나야 하고 문화적인 배경이 같아야 한다. 변수나 함수 그리고 클래스 이름은 다음과 같은 굵직한 질문에 모두 답해야 한다. 함수, 변수 클래스가 하는 일을 모두 기술하는 이름을 사용한다. 쓸모 없어질 주석은 아예 달지 않는 편이 가장 좋다. 당연한 동작을 구현하지 않으면 코드를 읽거나 사용하는 사람이 더 이상 함수 이름만으로 함수 기능을 직관적으로 예상하... CLEAN CODECLEAN CODE Clean Code: 단위 테스트 테스트 코드는 실제 코드만큼, 어쩌면 실제 코드보다 더 중요할 수 있다. 테스트 코드는 실제 코드의 유연성, 유지보수성, 재사용성을 보존 강화한다. 테스트 코드도 클린하게 유지해야 실제 코드가 망가지지 않는다. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 이를 통해 테스트 코드와 실제 코드가 함께 나오고, ... CLEAN CODECLEAN CODE 클린코드 chap 4. 주석 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 자신이 저지른 난장판을 주석으로 설명하지 말고 개선하는 데 시간을 보내야 한다. 코드로도 의도를 표현할 수 있다. 예제 1. 나쁜 예와 좋은 예 코드의 변화에 따라가지 못하고, 주석은 방치된다. 코드는 컴파일되어 호출되지만 주석은 그저 주석이기 때문에 그 자리에 방치되고 결국 의미없는 텍스트가 되어버리는 경우가 허다하다. ... 클린 코드CLEAN CODE제로베이스CLEAN CODE 클린 코드 (Clean Code) - 5 : Concurrency 무엇과 언제를 분리하게 되면 곧 동시성을 구현할 수 있음을 의미하게 되는데, 어플리케이션의 구조와 효율이 좋아지고 시스템을 이해하기 수월하다는 장점을 가지고 있다. 동시성은 부하를 유발시킬 수 있다. 다양한 스레드가 Counter 클래스를 공유하고 있는 상태에서, getIncreasedCount() 를 호출한다고 가정했을 때 다음과 같은 결과를 받을 수 있다. 잘못된 결과를 낳을 수 있는 가... CLEAN CODE클린코드동시성CLEAN CODE 객체와 자료 구조 그렇다면 어째서 수많은 프로그래머가 조회(Get) 함수와 설정(Set) 함수를 당연하게 공개(Public)해 비공개 변수를 외부로 노출할까요? 그저 조회 함수와 설정 함수로 변수를 다룬다고 클래스가 되지는 않습니다. 인터페이스나 조회/설정 함수만으로는 추상화가 이뤄지지 않습니다. 자료 구조는 자료를 그대로 공개하며 별다른 함수는 제공하지 않습니다. 반면, 새로운 자료 타입이 아니라 새로운 함... CLEAN CODECLEAN CODE 우아한 오류 처리 오류 플래그를 설정하거나 호출자에게 오류 코드를 반환하는 방법을 사용하면 호출자 코드가 복잡해집니다. try-catch-finally 문에서 try 블록에 들어가는 코드를 실행한다면 어느 시점에서든 실행이 중단된 후 catch 블록으로 넘어갈 수 있습니다. try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 합니다. 그러므로 예외가 발생할 코드를 짤 댸... CLEAN CODECLEAN CODE Python 클린 코드 (1) 어떤 코드 또는 소프트웨어 컴포넌트가 표준을 100% 준수한다해도 클린 코드의 요건을 충족하지 못할 수 있다.(품질, 견고하고 유지보수가 쉽게, 기술 부채 회피) 어노테이션은 Mypy 같은 도구를 사용해 타입 힌트 등의 자동화된 검증을 실행할 수 있다. - 따라서 함수를 수정해야 하는데 함수의 이름과 파라미터의 이름이 충분히 설명되어 있고, 어떤 타입을 사용해야하는지 docstring을 통해... 클린 코드python파이썬 클린 코드CLEAN CODECLEAN CODE 클린코드(Clean Code) 2장 (swift ver.) 위 질문을 주석을 꼭 확인해야 의도를 알 수 있게 하지 않아야한다. 위 코드를 작성한 개발자는 분명 독자가 아래의 정보를 안다고 가정하고 작성했다. 위 개념을 코드에 이름을 붙여서 바꿔보자. 이것이 좋은 이름을 써야하는 이유이다. 작명할때, 같은 개발 환경(같은 언어)에서 개발하는 사람들 뿐만 아니라 다른 개발환경에서 개발하는 사람들을 위해, 프로그래밍에서 보편적으로 널리 쓰이는 이름을 사용... swiftCLEAN CODE클린코드CLEAN CODE 클린 코드 - 4. 주석 코드를 통해 개발자의 의도를 모두 표현할 수 있다면 주석이 필요없기 때문이다. 주석은 나쁜 코드를 보완하지 못한다 이 때는 주석을 달기 보다는 코드를 정리해야 한다. 좋은 주석 법적인 주석 정보를 제공하는 주석 의도를 설명하는 주석 일반적이지 않은 의도를 표현한 코드에는 주석이 있다면, 코드를 이해하는 것을 넘어서 개발자의 의도까지 이해할 수 있다. 인수나 반환값이 표준 라이브러리에 속해있거... 주석CLEAN CODE클린 코드CLEAN CODE 의미있는 이름 그릇된 단서는 코드 의미를 흐립니다. 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용하면 안됩니다. 서로 흡사한 이름을 사용하지 않도록 주의합니다. 이름이 달라야 한다면 의도도 달라져야 합니다. 발음하기 쉬운 이름을 선택해야 합니다. 변수나 상수를 코드 여러 곳에서 사용한다면 검색하기 쉬운 이름이 바람직합니다. 독자가 코드를 읽으면서 변수 이름을 자신이 아는 이름으로 변환해야 한다... CLEAN CODECLEAN CODE [개발 도서] Clean Code :: 15장 - JUnit * 코드 커버리지 : 소프트웨어의 테스트 케이스가 얼마나 충족되었는지를 나타내는 지표로, 테스트를 진행하였을 때 '코드 자체가 얼마나 실행되었느냐' 에 해당 위의 테스트 케이스로 코드 커버리지 분석을 하면 100%가 된다. * 보이스카우트 규칙 : 체크 아웃때보다 더 좋은 코드를 체크인 한다. 즉, 코드 정리를 거듭할수록 더 좋은 코드가 되어야 한다는 의미 더 좋은 코드를 위해 아래와 같은 ... 개발 도서CLEAN CODECLEAN CODE [clean code] 2. 의미 있는 이름 1. 의도를 분명히 밝혀라 bad code good code bad code good code 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용하면 안 된다. 서로 흡사한 이름을 사용하지 않도록 주의한다. 동일한 범위안에서는 다른 두 개념에 같은 이름을 사용하지 못한다. bad code 연속된 숫자 good code 의미 있는 이름으로 변경 4. 발음하기 쉬운 이름을 사용하라 bad... CLEAN CODECLEAN CODE
[개발 도서] Clean Code :: 12장 - 창발성 즉 창발적 설계란 어떤 규칙과 원칙에 따라 설계를 하게 되면, 그것들이 모여 아주 좋은 거시적 설계가 될 수 있음을 말한다. 네가지 규칙을 따르면 코드 구조와 설계를 파악하기 쉬워져 SRP, DIP와 같은 원칙을 적용하기 쉬워지며 우수한 설계의 창발성을 촉진시킬 수 있다. 📗 단순한 설계 규칙 1 - 모든 테스트를 실행한다. 다량의 테스트 케이스를 만들어 원활한 테스트가 가능하게 한다. 다량... CLEAN CODE개발 도서CLEAN CODE 클린 코드 - 냄새와 휴리스틱 좋은 이름을 선택하려면 설명 능력이 뛰어나야 하고 문화적인 배경이 같아야 한다. 변수나 함수 그리고 클래스 이름은 다음과 같은 굵직한 질문에 모두 답해야 한다. 함수, 변수 클래스가 하는 일을 모두 기술하는 이름을 사용한다. 쓸모 없어질 주석은 아예 달지 않는 편이 가장 좋다. 당연한 동작을 구현하지 않으면 코드를 읽거나 사용하는 사람이 더 이상 함수 이름만으로 함수 기능을 직관적으로 예상하... CLEAN CODECLEAN CODE Clean Code: 단위 테스트 테스트 코드는 실제 코드만큼, 어쩌면 실제 코드보다 더 중요할 수 있다. 테스트 코드는 실제 코드의 유연성, 유지보수성, 재사용성을 보존 강화한다. 테스트 코드도 클린하게 유지해야 실제 코드가 망가지지 않는다. 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 이를 통해 테스트 코드와 실제 코드가 함께 나오고, ... CLEAN CODECLEAN CODE 클린코드 chap 4. 주석 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 자신이 저지른 난장판을 주석으로 설명하지 말고 개선하는 데 시간을 보내야 한다. 코드로도 의도를 표현할 수 있다. 예제 1. 나쁜 예와 좋은 예 코드의 변화에 따라가지 못하고, 주석은 방치된다. 코드는 컴파일되어 호출되지만 주석은 그저 주석이기 때문에 그 자리에 방치되고 결국 의미없는 텍스트가 되어버리는 경우가 허다하다. ... 클린 코드CLEAN CODE제로베이스CLEAN CODE 클린 코드 (Clean Code) - 5 : Concurrency 무엇과 언제를 분리하게 되면 곧 동시성을 구현할 수 있음을 의미하게 되는데, 어플리케이션의 구조와 효율이 좋아지고 시스템을 이해하기 수월하다는 장점을 가지고 있다. 동시성은 부하를 유발시킬 수 있다. 다양한 스레드가 Counter 클래스를 공유하고 있는 상태에서, getIncreasedCount() 를 호출한다고 가정했을 때 다음과 같은 결과를 받을 수 있다. 잘못된 결과를 낳을 수 있는 가... CLEAN CODE클린코드동시성CLEAN CODE 객체와 자료 구조 그렇다면 어째서 수많은 프로그래머가 조회(Get) 함수와 설정(Set) 함수를 당연하게 공개(Public)해 비공개 변수를 외부로 노출할까요? 그저 조회 함수와 설정 함수로 변수를 다룬다고 클래스가 되지는 않습니다. 인터페이스나 조회/설정 함수만으로는 추상화가 이뤄지지 않습니다. 자료 구조는 자료를 그대로 공개하며 별다른 함수는 제공하지 않습니다. 반면, 새로운 자료 타입이 아니라 새로운 함... CLEAN CODECLEAN CODE 우아한 오류 처리 오류 플래그를 설정하거나 호출자에게 오류 코드를 반환하는 방법을 사용하면 호출자 코드가 복잡해집니다. try-catch-finally 문에서 try 블록에 들어가는 코드를 실행한다면 어느 시점에서든 실행이 중단된 후 catch 블록으로 넘어갈 수 있습니다. try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 합니다. 그러므로 예외가 발생할 코드를 짤 댸... CLEAN CODECLEAN CODE Python 클린 코드 (1) 어떤 코드 또는 소프트웨어 컴포넌트가 표준을 100% 준수한다해도 클린 코드의 요건을 충족하지 못할 수 있다.(품질, 견고하고 유지보수가 쉽게, 기술 부채 회피) 어노테이션은 Mypy 같은 도구를 사용해 타입 힌트 등의 자동화된 검증을 실행할 수 있다. - 따라서 함수를 수정해야 하는데 함수의 이름과 파라미터의 이름이 충분히 설명되어 있고, 어떤 타입을 사용해야하는지 docstring을 통해... 클린 코드python파이썬 클린 코드CLEAN CODECLEAN CODE 클린코드(Clean Code) 2장 (swift ver.) 위 질문을 주석을 꼭 확인해야 의도를 알 수 있게 하지 않아야한다. 위 코드를 작성한 개발자는 분명 독자가 아래의 정보를 안다고 가정하고 작성했다. 위 개념을 코드에 이름을 붙여서 바꿔보자. 이것이 좋은 이름을 써야하는 이유이다. 작명할때, 같은 개발 환경(같은 언어)에서 개발하는 사람들 뿐만 아니라 다른 개발환경에서 개발하는 사람들을 위해, 프로그래밍에서 보편적으로 널리 쓰이는 이름을 사용... swiftCLEAN CODE클린코드CLEAN CODE 클린 코드 - 4. 주석 코드를 통해 개발자의 의도를 모두 표현할 수 있다면 주석이 필요없기 때문이다. 주석은 나쁜 코드를 보완하지 못한다 이 때는 주석을 달기 보다는 코드를 정리해야 한다. 좋은 주석 법적인 주석 정보를 제공하는 주석 의도를 설명하는 주석 일반적이지 않은 의도를 표현한 코드에는 주석이 있다면, 코드를 이해하는 것을 넘어서 개발자의 의도까지 이해할 수 있다. 인수나 반환값이 표준 라이브러리에 속해있거... 주석CLEAN CODE클린 코드CLEAN CODE 의미있는 이름 그릇된 단서는 코드 의미를 흐립니다. 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용하면 안됩니다. 서로 흡사한 이름을 사용하지 않도록 주의합니다. 이름이 달라야 한다면 의도도 달라져야 합니다. 발음하기 쉬운 이름을 선택해야 합니다. 변수나 상수를 코드 여러 곳에서 사용한다면 검색하기 쉬운 이름이 바람직합니다. 독자가 코드를 읽으면서 변수 이름을 자신이 아는 이름으로 변환해야 한다... CLEAN CODECLEAN CODE [개발 도서] Clean Code :: 15장 - JUnit * 코드 커버리지 : 소프트웨어의 테스트 케이스가 얼마나 충족되었는지를 나타내는 지표로, 테스트를 진행하였을 때 '코드 자체가 얼마나 실행되었느냐' 에 해당 위의 테스트 케이스로 코드 커버리지 분석을 하면 100%가 된다. * 보이스카우트 규칙 : 체크 아웃때보다 더 좋은 코드를 체크인 한다. 즉, 코드 정리를 거듭할수록 더 좋은 코드가 되어야 한다는 의미 더 좋은 코드를 위해 아래와 같은 ... 개발 도서CLEAN CODECLEAN CODE [clean code] 2. 의미 있는 이름 1. 의도를 분명히 밝혀라 bad code good code bad code good code 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용하면 안 된다. 서로 흡사한 이름을 사용하지 않도록 주의한다. 동일한 범위안에서는 다른 두 개념에 같은 이름을 사용하지 못한다. bad code 연속된 숫자 good code 의미 있는 이름으로 변경 4. 발음하기 쉬운 이름을 사용하라 bad... CLEAN CODECLEAN CODE